﻿namespace _3_NovaAdmin.Domain.Abstractions;

/// <summary>
/// 审计接口
/// </summary>
/// <typeparam name="TKey"></typeparam>
public interface IAuditable<TKey> where TKey : notnull
{
    CreationAuditInfo<TKey> CreationAuditInfo { get; }
    EditAuditInfo<TKey>? EditAuditInfo { get; }

    /// <summary>  
    /// 变更新增的时间  
    /// </summary>  
    /// <param name="auditInfo"></param>  
    void ChangeCreationAudit(CreationAuditInfo<TKey> auditInfo);

    /// <summary>  
    /// 变更修改的时间  
    /// </summary>  
    /// <param name="auditInfo"></param>  
    void ChangeEditAuditInfo(EditAuditInfo<TKey> auditInfo);
}
